CAM integrated CNC control of machines

ABSTRACT

Systems and Methods for Computer Numerically Controlled (CNC) devices comprising a CNC integrated Computer-Aided Manufacturing (CAM) controller configured to input a CAD file and output a CAM file and a CAM integrated CNC controller configured to input the CAM file and output at least one command for at least one servo controller of a set of one or more servo controllers.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of International Patent ApplicationNo. PCT/US201346384, filed Jun. 18, 2013, claims priority to and thebenefit of Provisional Patent Application No. 61/661,458 filed Jun. 19,2012, both of which are hereby incorporated herein by reference in theirentirety for all purposes.

TECHNICAL FIELD

The invention in its several embodiments relates generally toComputer-Aided Manufacturing (CAM) systems and Computer NumericallyControlled (CNC) machines and specifically to the integration of machinetool program generation by means of CAM systems, and machine tool axescontrol by means of CNC controllers and servo controllers.

BACKGROUND

“Part programs” are programs in a machine language that are generated byCAM systems. CAM systems are the interface between the Computer-AidedDesign (CAD) design, i.e., the geometric design of a part, and the CNCmachine specifications. The first CNC controllers used a standardmachine code called EIA/ISO 6983, i.e., a G- and M-code program. Thisstandard is still widely used today. However, there are a number ofweaknesses in this standard. First, it is essentially a description of atool trajectory in terms of lines (G01), circles (G02 and G03), andrapid traverse displacements (G00). For complex parts, e.g.,three-dimensional (3D) parts, there may be a need to discretize andapproximate a spline curve with small G01 lines, which are thenre-assembled by the CNC to form a new spline curve. Second, there areproblems of accuracy due to the fact that the coordinates must bewritten down in a text file. Third, the CNC Operator alters the speedsand feeds to his or her convenience in a way that is inherently unknownto the CAM system, which may cause inefficiencies.

Many efforts have been made to cope with these problems. A new standard,14649 STEP-NC (STEP-NC), was created with the intention of replacing theold standard: EIA/ISO 6983. The goal of STEP-NC is to be an extensivedescription of the toolpath in a machine independent form, includingtolerances, such that the toolpath can still be changed and measured onthe CNC. However, this is quite impossible, because a toolpath is inprinciple a “tool motion.” Therefore, the toolpath is always linked withthe machine geometry and the physical limits of the machine. The ISOstandard, i.e., G- and M-codes, is merely coordinates and feedrates,whereas the STEP standard has as basic strategy in the cutter file thatallows the operator to specify the geometry and the desired precision.However, it is still up to the CNC, i.e., a STEP CNC, to translate thisinformation into cutter speeds and feeds. The STEP approach does notconsider that a toolpath is not merely a geometry, but also a tool path,i.e., a tool that moves along a path. All machines have certain areas ordirections where the toolpath may be difficult, and one cannot generatea toolpath independently from a machine.

Another effort to solve these problems is by directly calculating theservo controller commands in the CAM system by bridging the interfacebetween the CAM computer and the CNC controller. However, this solutionis not optimal, as it is impossible to change the speeds, i.e., the CNCoverride function, on the CNC. The authors and/or inventors of thisapproach argue that the operators should not change the speed on themachine anymore. However, a static speed is not practicable due to howparts are machined. In the ISO standard, the feedrate is specified bythe F-command, and is ideally sourced from a cutting database containingverified speeds for a certain material class and a corresponding tool.When new materials are used, the speeds must be changed. Additionally,for certain curvatures, the speed should be adapted. Depending on theCNC machine being used, the dynamics of the CNC machine may not allowfor the feedrates specified in the cutting database for the curvature tobe machined. For these reasons, every part should ideally be firstexecuted at a low speed. Then, in small increments, the speed may beincreased in function based on the experience of the operator. In somecases, e.g., large volumes being produced, the part may be optimizedmore than any existing CAM system, and speeds higher than 100% may betested. Small cutting problems may even be optimized via the operatorchanging the speeds and the cutting conditions on the machine.

Another effort to solve these problems is by verifying the machiningpart program in the CAM system before sending it to the CNC machine.Other variations offer a simulation of the CNC Software off-line. Thedisadvantage of this approach is that because there are so many CNCparameters to be set, that one may never be sure if the simulation istruly identical to the CNC system on the machine. Therefore, a verifiedoff-line simulation may still cause problems when executed on a CNCmachine.

Finally, efforts to solve these problems have involved putting the CAMsoftware on the same processing unit as the CNC. In some versions, bothunits may run on the same processor. Some have proposed reading aCAD-file by a CAD-interpreter that is located on the CNC processor. Thisinterpreter would then generate a Motion-Object, i.e., a file thatcontains both toolpath and tool trajectory information. This is animprovement on the EIA/ISO 6983 code interface, but it does not addressnor solve the unpredictable behavior of a CNC against the programmedtoolpath.

SUMMARY

Exemplary system embodiments may include a Computer NumericallyControlled (CNC) system that may comprise: a CNC integratedComputer-Aided Manufacturing (CAM) controller, where the CNC integratedCAM controller may be configured to receive a Computer-Aided Design(CAD) file and output at least one CAM file; and a CAM integrated CNCcontroller, where the CAM integrated CNC controller may be configuredto: receive the at least one CAM file, and output at least one commandfor at least one servo controller of a set of one or more servocontrollers. In some embodiments, a user, via a user interface of theCAM integrated CNC controller, may modify at least one of: the receivedCAM file and the outputted at least one command for the at least oneservo controller. In additional system embodiments, the CNC integratedCAM controller may be configured to determine, by the CAM, at least oneof: a tool speed, a tool acceleration, and at least one servo motorcurrent. In additional system embodiments, the CAM integrated CNCcontroller may be configured to control, by the CAM, at least one of: atool speed, a tool feed, and a tool acceleration. In additional systemembodiments, at least one machine parameter in the CNC integrated CAMcontroller may correspond to at least one machine parameter of the CAMintegrated CNC controller. In additional system embodiments, the CAMintegrated CNC controller may be further configured to: display, by theCAM, at least one of: a real-time limit for at least one cutting tool;and at least one alternative toolpath strategy for the real-time limit.In additional system embodiments, the real-time limit may be a limit incutting speed. In additional system embodiments, the real-time limit maybe set by a Determination of the Kinematics Parameters module configuredto set at least one of: a maximum velocity of each servo axis and amaximum acceleration of each servo axis. In additional systemembodiments, the user modified output of the at least one command forthe at least one of the servo controllers may comprise at least one of:a feedhold command function, a cyclestart command function, and anoverride command function. In additional system embodiments, the outputof the at least one CAM file from the CNC integrated CAM controller maybe received by the CAM integrated CNC controller via at least one of: aLAN connection and a memory device. In additional system embodiments,the at least one CAM file may comprise a stored CAM design.

Exemplary method embodiments may include a method of modifying aComputer Numerically Controlled (CNC) machine that may comprise:integrating a CNC controller that may be configured to determine speeds,accelerations, and servo motor currents with a Computer-AidedManufacturing (CAM) system, where the CNC integrated CAM system may beconfigured to receive a Computer-Aided Design (CAD) file and output atleast one CAM file; integrating a CAM system configured to edit a CAMfile with a CNC controller, where the CAM integrated CNC controller maybe configured to receive the at least one CAM file and output at leastone command for at least one servo controller of a set of one or moreservo controllers; and modifying, via a user interface of the CAMintegrated CNC controller, at least one of: the received CAM file andthe outputted at least one command for the at least one servocontroller. Additional method embodiments may further comprisedetermining one or more parameters of one or more servo controllers,where the determined one or more parameters of the one or more existingservo controllers may be entered into the CNC integrated CAM system andthe CAM integrated CNC controller.

Exemplary method embodiments may also include a method comprising:inputting a geometry from a Computer-Aided Design (CAD) file; defining,by a Computer Numerically Controlled (CNC) integrated Computer-AidedManufacturing (CAM) system, a tool that moves along a path; creating, bythe CNC integrated CAM system, one or more features and a set of one ormore associated operations; performing, by the CNC integrated CAMsystem, one or more simulations, where the one or more simulations maybe performed using an integrated Virtual Machine Simulator that utilizesa Determination of Kinematics Parameters module and a Interpolation andDistribution module; and determining, by the CNC integrated CAM system,a CAM file that may be based on an iterative loop of the inputting,defining, creating, and performing steps. In additional methodembodiments, the Determination of Kinematics Parameters module mayprotect a set of one or more servo amplifiers to ensure that no physicallimits are exceeded. In additional method embodiments, the Interpolationand Distribution module may ensure that no loss of precision occurs byusing the exact mathematical representation as the CAM integrated CNCcontroller.

BRIEF DESCRIPTION OF DRAWINGS

Embodiments may be illustrated by way of example and not limitation inthe figures of the accompanying drawings, and in which:

FIG. 1 depicts, in a top-level flowchart, a prior art CAM system and CNCcontroller;

FIG. 2 depicts, in a functional block diagram, a prior art CNCcontroller;

FIG. 3 depicts a perspective view of a problematic toolpath showing thetool space and the machine space;

FIG. 4 depicts, in a top-level flowchart, an exemplary embodiment of theintegrated CAM and CNC system;

FIG. 5 depicts, in a functional block diagram, an exemplary CNCintegrated CAM system; and

FIG. 6 depicts, in a functional block diagram, an exemplary CAMintegrated CNC controller.

DETAILED DESCRIPTION

FIG. 1 depicts, in a top-level flowchart, a general environment of aprior art CAM system (201) and a CNC controller (401). A CAD file (101),generated by a CAD system, is the general input of a CAM system (201).In some cases, the CAD data may be entered directly into the CAM system(201). Such systems may also provide basic CAD functions.

The main purpose of a CAM system (201) is to transform the CAD file(101), which contains geometrical information about a part, into aMachine Command File (301), which contains sequential commands for aparticular CNC machine. The Machine Command File (301) may also becalled a Cutter Location File. The Machine Command File (301) may bewritten according to a standard machine code, e.g., the EIA/ISO 6983standard.

In some cases, the Machine Command File (301) may be checked by aVirtual Machine Tool Simulator (202). This verification process mayensure that the generated code will work on the CNC machine, and anadvantage to this simulation is that it may avoid the need for lateron-machine verification depending on the CNC machine used and thecomplexity of the part to be verified. On-machine verification mayresult in large non-cutting times, or dead times, and is thereforenon-desirable in some circumstances. The Machine Command File (301) maythen be input, e.g., by a USB connection or a LAN connection, into theCNC controller (401).

The CNC controller (401) processes the Machine Command File (301) basedon the directives of an operator. The operator can issue a feedhold(601) command, a cyclestart (602) command, or a speed override (603)command. The CNC itself knows all of the machine limits and decides onthe ultimate speeds, feeds, and accelerations. These decisions generatecommands for at least one of the servo controllers (501,502).

FIG. 2 depicts, in a functional block diagram, additional details of thecontents of a prior art CNC controller (401). Such a CNC controller(401) may contain two processors: a first processor (425) and a secondprocessor (426). These processors (425,426) may be found in oldermicro-controllers in an embedded environment, whereas present-day PCarchitectures may be in the form of Industrial PCs. Advanced designs maydo both tasks on one Industrial PC with different operating systems. Thefirst processor (425) may handle the Man Machine Interface (MMI).Modules in the first processor (425) may include a CNC display (410) anda CNC program editor (411). The second processor (426) may handletranslating the Machine Command Code contained in the Machine CommandFile (301) to sample commands that may be sent to at least one of theservo controllers (501,502). Modules in the second processor (426) mayinclude a Determination of the Kinematics Parameters (421) module and anInterpolation and Distribution (422) module. The Determination of theKinematics Parameters (421) module may be a physical element thatprotects the servo amplifiers, and the entire CNC machine, to ensurethat no physical limits are exceeded. In addition, the Determination ofthe Kinematics Parameters module (421) ensures that the machine movesand cuts with quality, and is based on a set of CNC parameters, e.g., amaximum velocity of each servo axis and an acceleration of each servoaxis.

FIG. 3 depicts a perspective view of a problematic toolpath (300)showing the tool space (305) and the machine space (307). A toolpath isnot merely a geometry, but also a tool path, i.e., a tool that movesalong a path. All machines have areas or directions where the toolpathmay be difficult to navigate. The smooth toolpath for the endpoint ofthe tool (303) in FIG. 3, becomes a problem in machine space due to thetool positioning required and corresponding CNC machine limits toachieve these tool position changes.

FIG. 4 depicts, in a top-level flowchart, an exemplary embodiment of theintegrated CAM and CNC system. The CAM system is a CNC integrated CAMsystem (701). A Virtual Machine Simulator (707) is now integrated insidethe CAM system (701). While the CNC simulator was only used as anoptional indicator in the prior art (202, FIG. 1), it is presentlyintegrated into the CNC integrated CAM system (701). The CNC controlleris a CAM integrated CNC controller (901). The input of the CAMintegrated CNC controller (901) is a CAM File (801), which may becomprised of one or more CAM files used to store a CAM design. The CNCfunctions of a feedhold (601) command, a cyclestart (602) command and anoverride (603) command are also available.

Virtually all CNC machines may be equipped with the present system. Insome embodiments, existing CNC machines may be retrofitted with thissystem and the existing servo controllers may be retained so long astheir parameters are input into the CNC integrated CAM system (701). Inthe present exemplary embodiment, the CNC integrated CAM system (701)and the CAM integrated CNC controller (901) are mated. As a result,toolpaths generated with incorrect CNC data will not be executed.

An exemplary embodiment includes a full integration of the CAM systemwith the CNC system comprising: (a) an integration of the CNC functionsthat determine speeds, accelerations, and servo motor currents insidethe CAM system; and (b) an integration of the CAM editing functions onthe CNC system. In this exemplary embodiment, the speeds, feeds, andaccelerations are no longer controlled by the CNC, but by the CAMsystem. Accordingly, the machine parameters in the CNC integrated CAMsystem (701) may be fine-tuned to each particular CNC machine. In doingthis, the limits of the system are known whenever a new feature isprogrammed into the CNC integrated CAM system (701).

In this exemplary embodiment, there is no requirement to store a MachineCommand File (301, FIGS. 1-2), e.g., G-code. From the CNC integrated CAMsystem (701), a user, or operator, may store the project directly as aCAM file (801). This CAM file (801) may then be sent to the CAMintegrated CNC controller (901), where a user will have the samesoftware available on the CAM integrated CNC controller (901) as on theCNC integrated CAM system (701). Accordingly, a user may change any partof the resulting program in the CAM integrated CNC controller (901) asin the off-line CNC integrated CAM system (701). In this exemplaryembodiment, both the CNC integrated CAM system (701) and the CAMintegrated CNC controller (901) may be on the same processor, and theinterface between the two is no longer a Machine Command File (301,FIGS. 1-2), but a software structure. This ensures a high degree ofpossible precision, because the exact mathematical form as designed bythe CAD/CAM system is retained.

An exemplary embodiment integrates the exact CNC Kinematics calculationsof the CAM integrated CNC controller (901) into the CNC integrated CAMsystem (701); and integrates the CAM functions and mathematics of theCNC integrated CAM system (701) into the CAM integrated CNC controller(901). In doing this, the CNC integrated CAM system (701) no longeroutputs a Machine Command File (301, FIGS. 1-2), but instead saves theprogrammed tool trajectory in one or more genuine CAM files (801). TheseCAM files (801) may then be read by a CNC Controller that has integratedCAM modules: the CAM integrated CNC controller (901).

The exact CNC Kinematics are available at each choice of tool and/orprogramming of a CAM feature, and one or more options may be compared onthe spot. The generation of cutting marks, caused by reversing servoaxes, may be immediately shown in the CAM program. The CAM system mayindicate, on the spot, limits in cutting speeds. If a limit is reached,a user may react and choose one or more alternative tool pathstrategies. In this exemplary embodiment, the owner of the Kinematicscalculations is no longer the CNC controller, but the CNC integrated CAMsystem (701). This is accomplished because the CAM software and the CNCsoftware are both available on the CNC machine.

The programmed trajectory, which may be generated off-line, is thentransferred to the CNC machine by means of a network, e.g., a LANconnection, or a memory device, e.g., a USB stick. This programmedtrajectory does not need to be written down in a Machine CommandLanguage. Instead, it is stored in one or more CAM files (801), therebykeeping track of all design features, options, selections, etc. Allthese items may still be altered on the CNC machine by the CAMintegrated CNC controller (901).

If not altered by a user, the CAM integrated CNC controller (901) willexecute the intended trajectory exactly as programmed without anychanges of speed or changes of acceleration. If the user decides tochange the Kinematics for better cutting performance, the user may usethe CAM editing functions or the CNC Override (603) functions.

In a conventional CAM system, a Machine Command File (301, FIGS. 1-2) isinherently limited to writing down coordinates with a certain precision.This precision is generally between 0.01 mm and 0.001 mm. However, inthe original CAD file (101, FIG. 1) those values may be smaller than0.01 mm and/or 0.001 mm, which may result in a small error. This erroris half of the precision, e.g., 0.005 mm or 0.0005 mm. Small blocklengths are points with a small interval, e.g., 0.1 mm. Specifying smallblock lengths may cause sudden changes in block orientation due to thediscretization. If these points are executed by a conventional CNCmachine, then the blockspeed does not increase and the position of thetool changes in jumps. In a 5-axis CNC machine this sudden change intool orientation may result in chatter, i.e., a vibration of the tool,along with corresponding errors in the workpiece.

During the execution of the trajectory in the present embodiment, theCAM integrated CNC controller (901) may use the exact mathematicalrepresentation as adopted by the CNC integrated CAM system (701). Thisrepresentation may be a line, a circle, a polynomial of n^(th) degree,or any other mathematical function. Through this process, there is noneed to take a loss of precision into account. Complex shapes may beprecisely manufactured exactly as they are programmed mathematicallyinside the CNC integrated CAM system (701).

FIG. 5 depicts, in a functional block diagram, an exemplary CNCintegrated CAM system (701). In this embodiment, the Virtual MachineSimulator (707) is integrated into the CNC integrated CAM system (701).In the prior art of FIG. 1, the Virtual Machine Simulator (202, FIG. 1)was used to check the issued Machine Command File (301, FIGS. 1-2), andif an error was found, the entire process had to be redone. In thisexemplary embodiment, the Virtual Machine Simulator (707) has access tothe same software, the same CNC parameters, and the same Determinationof the Kinematic Parameters (921) as the CAM Integrated CNC controller(901, FIGS. 4 and 6). The logic for the Determination of the KinematicParameters (921) may then be used whenever a feature is programmed inthe CNC integrated CAM system (701). In doing this, each CAM feature maybe simulated with the same logic as is available in the CAM integratedCNC controller (901, FIGS. 4 and 6), and each feature may be physicallycorrect. In the prior art of FIGS. 1-2, the CNC controller (401, FIGS.1-2) has been merely a geometrical organ that defined speed and feedsfrom a cutting database. An existing part program contains toolpaths,specified in coordinates of lines and circles, or splines usingcalculation results of the cross section between two surfaces: the toolradius and the mathematically defined surface from the CAD system.Calculating and storing these points may result in lost information. Thepresent system leaves these surfaces in their original form up until theexecutor of the CNC needs a new point to be calculated. In thisexemplary embodiment, the Determination of Kinematics (921) isintegrated into the CNC integrated CAM system (701). From the CAD file(101) the CNC Integrated CAM system (701) inputs the geometry (702).Then, in an iterative loop, the CNC integrated CAM system (701) definesand/or imports the tools (703), creates one or more features (704),makes one or more operations (705), and performs one or more simulations(706) where the simulations (706) use an integrated Virtual MachineSimulator (707) that uses the Determination of Kinematics (921) modulesand the Interpolation and Distribution (422) modules. Once the processis completed, the CNC integrated CAM system (701) outputs a CAM file(801).

An exemplary CNC integrated CAM system (701) may output part programsfor more than one CNC machine, so long as the CNC integrated CAM system(701) contains the complete CNC parameters and CNC software for thecorresponding CNC machines, and the corresponding CNC machines comprisea CAM integrated CNC controller (901, FIGS. 4 and 6).

FIG. 6 depicts, in a functional block diagram, an exemplary embodimentof CAM functionality integrated into the CAM integrated CNC controller(901). The CAM file (801) may be read by the CAM integrated CNCcontroller (901). This exemplary CAM file (801) may contain moreinformation than a typical Machine Command File (301, FIGS. 1-2). Everyaspect of the toolpath trajectory may be edited on the CAM integratedCNC controller (901) in the same way as on the CNC integrated CAM system(701, FIGS. 4-5). A user may edit the toolpath trajectory using the MMIof the machine via a CAM & CNC display (910) and a CAM editor (911). TheDetermination of the Kinematics Parameters (921) module protects theservo amplifiers, and the entire CNC machine, to ensure that no physicallimits are exceeded. The Interpolation and Distribution (422) module mayuse the exact mathematical representation as the CAM integrated CNCcontroller (901) itself. Thereby, no loss of precision may be assured.From the Interpolation and Distribution (422) module in the CAMintegrated CNC controller (901), commands for at least one of the servocontrollers (501,502) may be issued. Accordingly, the CNC-specificoperator functions of feedhold (601), cyclestart (602) and override(603) may all still be utilized.

It is contemplated that various combinations and/or sub-combinations ofthe specific features and aspects of the above embodiments may be madeand still fall within the scope of the invention. Accordingly, it shouldbe understood that various features and aspects of the disclosedembodiments may be combined with or substituted for one another in orderto form varying modes of the disclosed invention. Further it is intendedthat the scope of the present invention herein disclosed by way ofexamples should not be limited by the particular disclosed embodimentsdescribed above.

What is claimed is:
 1. A system comprising: a Computer-AidedManufacturing (CAM) system that is a Computer Numerically Controlled(CNC) integrated CAM controller, wherein the CNC integrated CAMcontroller is configured to: receive a Computer-Aided Design (CAD) file;perform one or more simulations based on a set of parameters receivedfrom a Determination of Kinematics Parameters module and anInterpolation and Distribution module; and output at least one CAM filebased on the received CAD file and performed one or more simulations,wherein the at least one CAM file comprises a set of programmed tooltrajectories, thereby keeping track of all design features, options, andselections; a CNC controller that is a CAM integrated CNC controller,wherein the CAM integrated CNC controller is configured to: receive theat least one CAM file wherein the received at least one CAM filecomprises sequential commands for a particular CNC machine and whereinthe CAM integrated CNC controller uses an exact mathematicalrepresentation as adopted by the CNC integrated CAM controller; edit theat least one CAM file via a user interface in a CAM editor of the CAMintegrated CNC controller, including the set of programmed tooltrajectories thereby producing an edited CAM file; determine speeds,accelerations, and servo motor currents inside the CAM integrated CNCcontroller based on the edited CAM file, thereby shifting control fromthe CNC integrated CAM controller to the CAM integrated CNC controller,wherein any limits of the system are known whenever a new feature isprogrammed into the CNC integrated CAM controller; and output at leastone command for at least one servo controller of a set of one or moreservo controllers based on the determined speeds, accelerations, andservo motor currents.
 2. The system of claim 1, wherein the CNCintegrated CAM controller is configured to determine, by the CAM, atleast one of: a tool speed, a tool acceleration, and at least one servomotor current.
 3. The system of claim 1, wherein the CAM integrated CNCcontroller is configured to control, by the CAM, at least one of: a toolspeed, a tool feed, and a tool acceleration.
 4. The system of claim 1,wherein at least one machine parameter in the CNC integrated CAMcontroller corresponds to at least one machine parameter of the CAMintegrated CNC controller.
 5. The system of claim 1, wherein the CAMintegrated CNC controller is further configured to: display, by the CAM,at least one of: a real-time limit for at least one cutting tool; and atleast one alternative toolpath strategy for the real-time limit.
 6. Thesystem of claim 5 wherein the real-time limit is a limit in cuttingspeed.
 7. The system of claim 5 wherein the real-time limit is set bythe Determination of the Kinematics Parameters module configured to setat least one of: a maximum velocity of each servo axis and a maximumacceleration of each servo axis.
 8. The system of claim 1 wherein theuser modified output of the at least one command for the at least one ofthe servo controllers controlled by the CNC controller that is a CAMintegrated CNC controller, comprises at least one of: a feedhold commandfunction, a cyclestart command function, and an override commandfunction.
 9. The system of claim 1 wherein the output of the at leastone CAM file from the CNC integrated CAM controller is received by theCAM integrated CNC controller via at least one of: a LAN connection anda memory device.
 10. The system of claim 1 wherein the at least one CAMfile comprises a stored CAM design.
 11. A method comprising: inputting ageometry from a Computer-Aided Design (CAD) file; defining, by aComputer Numerically Controlled (CNC) integrated Computer-AidedManufacturing (CAM) system, a tool that moves along a path; creating, bythe CNC integrated CAM system, one or more features and a set of one ormore associated operations; performing, by the CNC integrated CAMsystem, one or more simulations, wherein the one or more simulations areperformed using an integrated Virtual Machine Simulator that utilizes aDetermination of Kinematics Parameters module and a Interpolation andDistribution module; determining, by the CNC integrated CAM system, aCAM file based on an iterative loop of the inputting, defining,creating, and performing steps wherein the CAM file comprises sequentialcommands for a particular CNC machine and represents an exactmathematical representation as adopted by the CNC integrated CAM system;editing, by a CAM integrated CNC controller, the determined CAM file viaintegration of functions of the CNC integrated CAM system with the CAMintegrated CNC controller, wherein a user, via a user interface, canedit any part of a resulting outputted part program in the CAMintegrated CNC controller; and outputting part programs for controllingone or more CNC machines based on the edited CAM file, wherein the CNCintegrated CAM system contains a complete set of CNC parameters and CNCsoftware for a corresponding CNC machine, and the corresponding CNCmachine comprises a CAM integrated CNC controller wherein any limits ofthe system are stored in the edited CAM file whenever a new feature isprogrammed into the CNC integrated CAM system.
 12. The method of claim11, wherein the Determination of Kinematics Parameters module protects aset of one or more servo amplifiers to ensure that no physical limitsare exceeded.
 13. The method of claim 11, wherein the Interpolation andDistribution module ensures that by using the exact mathematicalrepresentation as the CAM integrated CNC controller, no loss ofprecision occurs.